const query = require('../../db/index');
const moment = require('moment');
// 发布消息
exports.publish = async (req, res) => {
    try {
        const { userId, content } = req.body;
        console.log("收到数据", content);
        // 检查必要参数是否存在
        if (!userId || !content) {
            return res.dispatch(400, "userId, content are required");
        }

        // 构建插入消息的SQL语句，包括时间戳
        const insertSQL = `
            INSERT INTO chat (userId, content)
            VALUES (?,?)
        `;
        const insertValues = [userId, content];

        // 执行插入操作
        const insertResult = await query(insertSQL, insertValues);

        // 返回成功的响应
        return res.dispatch(200, "Message published successfully");
    } catch (error) {
        // 捕获数据库操作或其他错误，并返回适当的错误响应
        console.error("Error publishing message:", error);
        return res.dispatch(500, "Failed to publish message");
    }
}


// 获取消息列表
exports.getMessages = async (req, res) => {
    try {
        // 构建查询消息的SQL语句，包括用户信息
        const selectSQL = `
            SELECT chat.messageId, chat.userId, chat.content, chat.time, user.name, user.avatar
            FROM chat
            JOIN user ON chat.userId = user.id
        `;

        // 执行查询操作
        const messages = await query(selectSQL);

        // 格式化时间字段
        messages.forEach(message => {
            message.time = moment(message.time).format('YYYY-MM-DD HH:mm:ss');
        });

        // 返回消息列表
        return res.dispatch(200, messages);
    } catch (error) {
        // 捕获数据库操作或其他错误，并返回适当的错误响应
        console.error("Error retrieving messages:", error);
        return res.dispatch(500, "Failed to retrieve messages");
    }
}